Frequently Asked Questions

Classic BlendÖ-Next Generation
Why use Classic Blend û Next Generation?
Can you elaborate on using Classic Blend to develop n-tiered applications simply?
Why do I need a thin client?
CanÆt I just use Java Server Pages, JavaScript, HTML, etc?
Is Classic Blend NG an Application Server?
What is a Presentation Server?
What is the difference between an Application Server and a Presentation Server?
How does this differ from a Java based client solution using CORBA or RMI?
What are the bandwidth requirements of Classic Blend?
Can I fit a "big" application on a tiny Network Computer?
This sounds a lot like X-Windows or WinFrame. Is it?
But canÆt Java on the client deliver the same thing?
 

Why use Classic Blend û Next Generation?
The primary benefits are:

back to the top

Can you elaborate on using Classic Blend to develop n-tiered applications simply?
Building distributed applications is often very difficult. These difficulties stem from maintaining multiple code bases. The code on the client must be maintained and kept in sync with the server code. Debugging distributed applications is very challenging and once all the bugs are out, attention must be turned to performance, which is often poor. Classic Blend eliminates all three of these issues. There is only one code base to maintain, all debugging occurs on the server per usual, and the Classic Blend has been highly optimized.

back to the top

Why do I need a thin client?
Having a thin-client makes deployment much more manageable û a 250 KB download is even tolerable over a 28.8k connection. If you desire you can also install Classic Blend on each userÆs desktop using distribution technology such as InstallAnywhere™, or use push technology such as Marimba® Castanet™ or Microsoft® Cabinet Manager to implement intelligent caching. Because the application logic code only exists on the server, changes are managed from the server and do not have to be pushed out to each of the clients. When the application logic code is updated on the server, all of the clients will automatically include those changes without requiring any client-side updates.

The Gartner Group estimates that it costs $1000 per user per year for every application that must be maintained on a client's machine. This means that if your organization has 100 users of 5 different applications that must be manually installed and maintained on their machines, then this will cost your organization an average of $500,000 every year to support those applications. However, these costs can be eliminated if the application doesnÆt have to be installed and updated on each machine. An automatically downloaded client (like Classic Blend) provides just such a solution.

back to the top

CanÆt I just use Java Server Pages, JavaScript, HTML, etc?
HTML excels at displaying static page-based information. While there are advantages to a page-based model it explicitly limits the sophistication of the GUI. And as one attempts to add more complex behavior to the page-based model, the development quickly becomes complex and expensive to maintain. In addition, the page-based model is much more bandwidth expensive because an entire page of information and widgetry must be sent to update the GUI.

back to the top

Is Classic Blend NG an Application Server?
No, Classic Blend is not a fully blown application server. Classic Blend is often used in conjunction with application servers but is considered a Presentation Server. In addition, Classic Blend can be used in conjunction with other 3rd party tools to develop custom-built application server solutions.

The Classic Blend û Next Generation documentation describes how the product easily integrates with an application server, and provides some sample code for doing so with several popular application servers. Classic Blend - Next Generation has been built as a complementary solution to the problems of enterprise computing. That is, it is not designed to be a complete solution to all distributed application problems, rather a solution to one specific problem û how to build responsive, fully-featured, distributed graphical user interfaces. And as such, it has been designed to be used with other products and solutions. CB-NG integrates with any bean compliant Java development environment (Symantec VisualCafe, Borland JBuilder, IBM VisualAge for Java, etc.) It can be used with Application Servers (WebLogic, WebSphere, etc.), Enterprise Java Beans, and other middleware technology.

back to the top

What is a Presentation Server?
A Presentation Server is concerned with distributing just the visual GUI rendering portion of an application, not the presentation logic, business logic, or database tier.

back to the top

What is the difference between an Application Server and a Presentation Server?
In a typical three-tier application, the application server represents the middle tier that connects the third (GUI) tier with the first (database) tier. A Presentation Server takes the GUI layer of the first tier and distributes part of the GUI on the client and part of the GUI on the server and then manages the connection between the two.

back to the top

How does this differ from a Java based client solution using CORBA or RMI?
In short, Classic Blends Presentation server provides a higher performance, more highly responsive, and more easily created and maintained client solution than is developed using CORBA or RMI.

CORBA and RMI generally represent overkill for just distributing the GUI. Often when using CORBA or RMI you will send objects to the client only to display the client first/last name. The rest of the object is "thrown away". Sending objects that are not used creates more network traffic than necessary and requires the user to program on the client and server. There is substantially more overhead in a CORBA message than in a Classic Blend message, which has its transport protocol optimized for supporting thin client to application server messages. Also, in CORBA and RMI solutions, a separate message is required for each type of read or write query that client needs the application server to support. Classic Blend does not require that specialized application server queries be created and maintained since the presentation logic is left on the application server.

In addition Classic Blend has been optimized for presentation serving. Classic Blend has been optimized to reduce the size of network packets and reduce to number of network "round-trip" messages required when connecting a thin client to an application server.

back to the top

What are the bandwidth requirements of Classic Blend?
If you deploy Classic Blend as a download-on-demand applet, the applet (which is 250 KB) will have to be downloaded each time. Once the applet is downloaded, the GUI definitions for your application are downloaded. The GUI definitions will obviously vary but for complex applications expect 5k-14k for simple applications. (There exist a number of solutions that can eliminate this download cost to one time ever û Microsoft cabinets, Castanet, etc.) After the GUI definitions are downloaded, subsequent network traffic averages on the order of bytes, not kilobytes. Customers have been very successful deploying with Classic Blend over 28.8K modems.

back to the top

Can I fit a "big" application on a tiny Network Computer?
One of the key characteristics of the Classic Blend architecture is that it employs a universal client that works for all applications. This means that the only parts of a running application that resides on the client machine is the universal Classic Blend client, and a small piece of code that defines the interface layout. The application logic and business objects all reside on the server. As the application grows in features and size, the client stays virtually the same size, while the server grows.

back to the top

This sounds a lot like X-Windows or WinFrame. Is it?
In some ways it is. Both Classic Blend and WinFrame solutions allow the developer to focus on writing application logic code with little or no concern for the division between client and server. However, architecturally, Classic Blend and X-Windows/WinFrame are very different. Classic Blend places the actual interface objects (windows, widgets, etc) on the client. X-Windows/WinFrame places just the display on the client and emulates all of the interface objects on the server. Emulating the interface objects on the server requires that every event and repaint is sent between the client and server, resulting in a significant burden being placed on the server machine and bandwidth required. In contrast, the Classic Blend architecture leverages the processing power on the client to perform the low-level widget interactions such as events and repaints, and only high-level events (such as list selections or button presses) are sent to the server. In addition, the Classic Blend widget proxies have been optimized to intelligently cache and forward messages.

The client/server division that is created by Classic Blend is empirically the optimal one. This is because most semantically significant events require domain interaction (e.g. database queries, updates, etc.) in order to determine a response and so will need to go to the server for processing. At the same time, the architecture avoids excessive client and server interactions that are the Achilles heel of the X-Windows/WinFrame solution.

back to the top

But canÆt Java on the client deliver the same thing?
Java on the client can certainly provide the same functionality but at a much greater effort. The effort comes from the networking aspect. Networking applications require tuning and special tools for debugging. If developers aren't experienced at writing networking applications, they'll have a continuing growth experience as they learn more and more about networking, in order to figure out why they can't even connect the server to the client. In addition, with technologies such as CORBAor RMI, the slightest change to your objects can require a regeneration of network or stub code, thus requiring updates to all clients. Because Classic Blend is only concerned with representing the visual aspects of your application, changes to your domain objects will not require changes to the client code.

back to the top